import * as process from 'node:process';

// 定义 MySQL 配置的接口
interface MysqlConfig {
  type: string; // 数据库类型
  host: string; // 数据库主机
  port: number; // 数据库端口
  username: string; // 数据库用户名
  password: string; // 数据库密码
  database: string; // 数据库名称
  synchronize: boolean; // 是否同步数据库结构
  retryDelay: number; // 重试延迟时间
  retryAttempts: number; // 最大重试次数
  autoLoadEntities: boolean; // 是否自动加载实体
}

// 定义 MySQL 配置对象并添加类型约束
const mysqlConfig: MysqlConfig = {
  type: process.env.TYPE || 'mysql', // 默认值为 'mysql'
  host: process.env.HOST || '127.0.0.1', // 默认值为 'localhost'
  port: parseInt(process.env.DB_PORT || '3306', 10), // 默认值为 3306
  username: process.env.USERNAME || 'root', // 默认值为 'root'
  password: process.env.PASSWORD || '', // 默认值为空字符串
  database: process.env.DATABASE || 'test', // 默认值为 'test'
  synchronize: (process.env.SYNCHRONIZE || 'false') === 'true', // 默认值为 false
  retryDelay: parseInt(process.env.RETRY_DELAY || '100', 10), // 默认值为 500
  retryAttempts: parseInt(process.env.RETRY_ATTEMPTS || '10', 10), // 默认值为 10
  autoLoadEntities: (process.env.AUTO_LOAD_ENTITIES || 'false') === 'true', // 默认值为 false
};

export default mysqlConfig;